<?php

class Request {
  
  /**
   * recupera il parametro $paramName dalla request (GET). Se non esiste nella request
   * attribuisce il valore di default specificato da $defaultValue.
   * Inoltre se $validChar è false non viene effettuato alcun controllo sui valori.
   * Se $validChar è diverso da false (un stringa) deve contenere i caratteri ammessi.
   */
  public static function getParameter($paramName, $defaultValue="", $validChar="a-zA-Z_0-9") {
    $value="";
    if (key_exists($paramName, $_GET)) {
      $paramValue = $_GET[$paramName];
    } else {
      $paramValue=$defaultValue;
    }
    if ($validChar) {
      if ( ! preg_match("|^[".str_replace(array('\\-', '\-'), '-', preg_quote($validChar, '-'))."]+$|i", $paramValue)) {
        $paramValue=false;
      }
    }
    return $paramValue;
  }
  
  public static function getCurrentPageURL($withParamsUrl=true) {
    $pageURL = 'http';
    if (key_exists("HTTPS", $_SERVER)) {
      if ($_SERVER["HTTPS"] == "on") {
        $pageURL .= "s";
      }
    }
    $pageURL .= "://";
    $urlSuffix=$_SERVER["REQUEST_URI"];
    if ( ! $withParamsUrl) {
      $urlSuffix=$_SERVER["PHP_SELF"];
    }
    if ($_SERVER["SERVER_PORT"] != "80") {
      $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$urlSuffix;
    } else {
      $pageURL .= $_SERVER["SERVER_NAME"].$urlSuffix;
    }
    return $pageURL;
  }
}
